The Universal Serial Bus (USB) Specification, Version 2.0, (published April 2000 and hereby incorporated by reference in its entirety) defines a high speed mode that operates at 480 MHz. Testing of such high speed devices can be difficult. Conventional solutions for implementing high speed testing include: (i) running tests on an expensive tester capable of 480 MHz operation; (ii) not performing at speed production testing (i.e., assuming the part is correct by design and operates at the high speed) and/or (iii) using a golden parts tester implementation for comparison purposes. A golden parts tester is a test-mode capable slave device, identical to the device which is being tested, that is capable of performing tests. There are disadvantages to each of the conventional approaches.
The first approach of simply implementing a high speed tester capable of 480 MHz testing is not a cost effective solution. Conventional high speed testers capable of 480 MHz operation and able to process a USB 2.0 design (which is largely digital) are at the state of the art in testers and, therefore, expensive. Furthermore, even a fast tester (i.e., a 480 MHz tester) can be problematic. Conventional at speed testers implement an internal phase lock loop (PLL) at 480 MHz. Synchronization of the 480 MHz tester to an incoming data rate is difficult. Verification of the incoming data rate is also difficult. Conventional high speed testers require a complex scheme to synchronize to a device under test (DUT). Additionally, the PLL will vary in phase from device to device and from test to test.
The second approach of not performing at speed production testing implies that the device is correct by design and well within the specification limits with a sufficient margin, as proven by full characterization. Specifically, not performing 480 MHz testing does not require expensive testing devices. Not performing at speed testing assumes that there are no plausible defects that can inhibit at speed operation (i.e., 480 MHz operation).
The approach of implementing a golden parts tester implementation (i.e., a replica of a target-only device implemented as a tester) for comparison purposes is not a possible tester solution for non peer-to-peer devices. The golden parts tester implementation cannot allow a replica of a target-only device to test another target-only device. A non peer-to-peer device (i.e., a USB device) cannot communicate to another non peer-to-peer device since they are non peer-to-peer devices.
USB implementations require a master and a slave device. However, slave devices cannot initiate communication. The golden part device expects to be a target (i.e., a slave) device and not a control (i.e., master) device. The golden parts tester cannot be implemented for a non peer-to-peer device, since peer-to-peer devices are not target-only devices. For example, a USB bus is not a peer-to-peer bus and the golden parts tester implementation is unable to communicate with another target-only device.
Therefore, it is desirable to provide a method and/or architecture to (i) enable slave devices to test other slave devices and/or (ii) add test mode enhanced slave device capabilities to a tester in order to test other non test mode slave devices.